package com.xxx.dubbo.controller;

import com.xxx.dubbo.api.DemoService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * dubbo测试
 * https://mp.weixin.qq.com/s/_I9IIDqP4KzgMMLxepRFYQ
 */
@RestController
public class DemoController {

    /**
     * Dubbo提供了3种手动配置服务provider方式：
     * ① 使用@DubboReference#providedBy
     * ② 通过配置文件配置服务名
     * ③ 在配置文件的注册中心上加上接口所在服务名
     * 除此之外，Dubbo还提供了自动探测服务名的方式，在元数据中心里匹配当前服务名(mapping)
     */
    // 使用dubbo的@DubboReference注解注入dobbo provider
    @DubboReference
    private DemoService demoService;

    @RequestMapping("/sayHello/{name}")
    public String hello(@PathVariable String name){
        System.out.println("enter method hello. name:"+name);
        return demoService.sayHello(name);
    }

}
